
package com.bstek.urule.model.rete.builder;

import com.bstek.urule.model.library.ResourceLibrary;
import com.bstek.urule.model.rete.ObjectTypeNode;
import com.bstek.urule.model.rule.Rule;
import com.bstek.urule.model.rule.lhs.BaseCriteria;

/**
 * @author Jacky.gao
 * @since 2015年1月8日
 */
public interface BuildContext {
    String getObjectType(BaseCriteria criteria);

    ObjectTypeNode getObjectTypeNode(BaseCriteria criteria);

    boolean assertSameType(BaseCriteria left, BaseCriteria right);

    ResourceLibrary getResourceLibrary();

    ObjectTypeNode buildObjectTypeNode(String className);

    int nextId();

    void setCurrentRule(Rule rule);

    boolean currentRuleIsDebug();
}
